<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // 正则表达式的两种方式
        // let c ="1234567891234513245612345123451235412345";
        // let a = /12345/g; //正则表达式/模式修正符
        // let b = new RegExp('正则表达式',模式修正符)

       
         

        // console.log(Object.prototype.toString.call(a));

        // console.log(a.exec(c));
        // console.log(a.exec(c));
        // console.log(a.exec(c));
        // console.log(a.exec(c));
        // console.log(a.exec(c));
        // console.log(a.exec(c)); //当一段字符串匹配完成再去找返回null

        // let arr = null;

        // while(arr = a.exec(c)){
        //     console.log(arr);
        // }


        // exec()方法来执行一个搜索的匹配，返回匹配项的信息的数组（）没有匹配上返回null
        // 返回的数组除了匹配项的结果还有index跟input

        // index 匹配字符串在原来字符数组的下标
        // input 表示的是正则表达式匹配到的字符串

        // 正则表达式的语法
        // 正则表达式的语法:模式修正符,原子,元字符

        // 模式修正符
        // 对正则进行解释征用的单个符号(写在右边),一个符号就是一个功能,就是一个正则,可以组合使用
            // ~g : 表示的全局匹配(那么也就是继续匹配),默认的时候匹配到之后停止匹配
            // ~i : 表示的是匹配的时候不区分大小写


        // 原子
        // 最小的匹配单位，要找的字符串，在正则表达式中最少有一个原子（一个原子匹配一次）

        // 普通字符a-z0-9A-Z

        // \d 表示的匹配任意一个数组
        
        // \D 表示的取反，除了数字都能匹配上

        // \w 表示的匹配任意一个字符a-z0-9A-Z_

        // \W 表示的是处了任意字符都能被匹配上

        // \s 表示匹配任意空白

        // \S 表示是除了空白都能被匹配上

        // \d 表示的是识别单词开头结尾或者空格（英文单词边界）

        // .  表示的是除了/n 都能匹配上的字符

        // 自定义原子：[]


        // 在自定义原子中写上^表示的是排除
        var str = '0123456789';

        // 表的是排除str中得012 ,其他全部匹配；
        var patt = /[^0-2]/g;

        var res = null ;
        while(res = patt.exec(str)){
            console.log(res);
        }

        // 元字符
        {}
        // {n}，代表前面得原子只能出现n次，
        
        // {n,}, 代表的是至少出现n次，次数不限

        // {n,m} 表示的是前面的原子最少出现n次，最多出现m次

        // *，表示的是前面的原子可以出现0次1次或者多次

        // +，表示的是前面的原子只能出现1次或者多次

        // ？表示的是卡面的原子只能出现0次或1次

        // ^ 表示的正则表达式卡面必须是以xx开始，必须要写在正则表达式的前面

        // $ 表示的正则表达式后面必须是xx结尾，必须要写在正则表达式的后面

        // | 表示的或者的关系，匹配左边或右边

        // \ 表示的转义字符


 

        
    </script>
</body>
</html>